{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "querycn",
  "homepage": "https://github.com/minhduoc-tran/tablecn",
  "items": [
    {
      "name": "filter-builder",
      "type": "registry:block",
      "title": "Filter Builder",
      "description": "A filter builder for data tables: field, operator and value rows applied to the URL, built on @querycn/filter-react.",
      "dependencies": [
        "@querycn/filter-core@^0.3.0",
        "@querycn/filter-react@^0.3.0",
        "cn",
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "badge",
        "button",
        "calendar",
        "input",
        "popover",
        "select",
        "command"
      ],
      "files": [
        {
          "path": "registry/radix/filter/filter-builder.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-builder.tsx"
        },
        {
          "path": "registry/radix/filter/filter-builder-panel.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-builder-panel.tsx"
        },
        {
          "path": "registry/radix/filter/filter-join-select.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-join-select.tsx"
        },
        {
          "path": "registry/radix/filter/filter-rule-warnings.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-rule-warnings.tsx"
        },
        {
          "path": "registry/radix/filter/filter-chips.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-chips.tsx"
        },
        {
          "path": "registry/radix/filter/filter-combobox.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-combobox.tsx"
        },
        {
          "path": "registry/radix/filter/filter-field-select.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-field-select.tsx"
        },
        {
          "path": "registry/radix/filter/filter-operator-select.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-operator-select.tsx"
        },
        {
          "path": "registry/radix/filter/filter-rule-row.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-rule-row.tsx"
        },
        {
          "path": "registry/radix/filter/filter-value-input.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-value-input.tsx"
        },
        {
          "path": "registry/radix/filter/filter-text-value-input.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-text-value-input.tsx"
        },
        {
          "path": "registry/radix/filter/filter-boolean-value-input.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-boolean-value-input.tsx"
        },
        {
          "path": "registry/radix/filter/filter-select-value-input.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-select-value-input.tsx"
        },
        {
          "path": "registry/radix/filter/filter-date-value-input.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-date-value-input.tsx"
        },
        {
          "path": "registry/radix/filter/filter-datetime-value-input.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-datetime-value-input.tsx"
        },
        {
          "path": "registry/radix/filter/filter-time-value-input.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-time-value-input.tsx"
        },
        {
          "path": "registry/radix/filter/filter-picker-field.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-picker-field.tsx"
        },
        {
          "path": "registry/shared/filter/filter-date-format.ts",
          "type": "registry:lib",
          "target": "@components/filter/filter-date-format.ts"
        },
        {
          "path": "registry/shared/filter/filter-time-parts.ts",
          "type": "registry:lib",
          "target": "@components/filter/filter-time-parts.ts"
        },
        {
          "path": "registry/shared/filter/filter-time-panel.tsx",
          "type": "registry:component",
          "target": "@components/filter/filter-time-panel.tsx"
        },
        {
          "path": "registry/shared/filter/filter-picker-field-parts.ts",
          "type": "registry:lib",
          "target": "@components/filter/filter-picker-field-parts.ts"
        },
        {
          "path": "registry/shared/filter/filter-rule-summary.ts",
          "type": "registry:lib",
          "target": "@components/filter/filter-rule-summary.ts"
        }
      ]
    },
    {
      "name": "data-table",
      "type": "registry:block",
      "title": "Data Table",
      "description": "A data table on TanStack Table v9: sorting and pages in the URL, a saved column layout, row selection and inline editing, built on @querycn/table-react.",
      "dependencies": [
        "@dnd-kit/core@^6.3.1",
        "@dnd-kit/sortable@^10.0.0",
        "@querycn/filter-react@^0.3.0",
        "@querycn/table-react@^0.3.0",
        "@tanstack/react-table@^9.2.0",
        "@tanstack/react-virtual@^3.14.13",
        "cn",
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "button",
        "checkbox",
        "dropdown-menu",
        "input",
        "input-group",
        "popover",
        "select",
        "separator",
        "skeleton",
        "table",
        "tooltip",
        "command"
      ],
      "files": [
        {
          "path": "registry/radix/table/data-table.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table.tsx"
        },
        {
          "path": "registry/radix/table/data-table-selection-column.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-selection-column.tsx"
        },
        {
          "path": "registry/radix/table/data-table-body.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-body.tsx"
        },
        {
          "path": "registry/radix/table/data-table-editable-cell.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-editable-cell.tsx"
        },
        {
          "path": "registry/radix/table/data-table-cell-editors.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-cell-editors.tsx"
        },
        {
          "path": "registry/radix/table/data-table-search-select-editor.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-search-select-editor.tsx"
        },
        {
          "path": "registry/radix/table/data-table-column-header.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-column-header.tsx"
        },
        {
          "path": "registry/radix/table/data-table-pagination.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-pagination.tsx"
        },
        {
          "path": "registry/radix/table/data-table-view-options.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-view-options.tsx"
        },
        {
          "path": "registry/radix/table/data-table-column-color-menu.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-column-color-menu.tsx"
        },
        {
          "path": "registry/radix/table/data-table-column-menu.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-column-menu.tsx"
        },
        {
          "path": "registry/radix/table/data-table-toolbar.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-toolbar.tsx"
        },
        {
          "path": "registry/radix/table/data-table-search.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-search.tsx"
        },
        {
          "path": "registry/radix/table/data-table-reset-filters-button.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-reset-filters-button.tsx"
        },
        {
          "path": "registry/radix/table/data-table-selection-bar.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-selection-bar.tsx"
        },
        {
          "path": "registry/shared/table/column-reorder.tsx",
          "type": "registry:component",
          "target": "@components/data-table/column-reorder.tsx"
        },
        {
          "path": "registry/shared/table/column-resize-handle.tsx",
          "type": "registry:component",
          "target": "@components/data-table/column-resize-handle.tsx"
        },
        {
          "path": "registry/shared/table/column-guide-line.tsx",
          "type": "registry:component",
          "target": "@components/data-table/column-guide-line.tsx"
        },
        {
          "path": "registry/shared/table/column-label.ts",
          "type": "registry:lib",
          "target": "@components/data-table/column-label.ts"
        },
        {
          "path": "registry/shared/table/data-table-cell-classes.ts",
          "type": "registry:lib",
          "target": "@components/data-table/data-table-cell-classes.ts"
        },
        {
          "path": "registry/shared/table/data-table-filler.tsx",
          "type": "registry:component",
          "target": "@components/data-table/data-table-filler.tsx"
        },
        {
          "path": "registry/shared/table/data-table-pinning.ts",
          "type": "registry:lib",
          "target": "@components/data-table/data-table-pinning.ts"
        },
        {
          "path": "registry/shared/table/use-scroll-edges.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-scroll-edges.ts"
        },
        {
          "path": "registry/shared/table/use-cell-editing.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-cell-editing.ts"
        },
        {
          "path": "registry/shared/table/data-table-pagination-state.ts",
          "type": "registry:lib",
          "target": "@components/data-table/data-table-pagination-state.ts"
        },
        {
          "path": "registry/shared/table/use-keep-focus-in-pagination.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-keep-focus-in-pagination.ts"
        },
        {
          "path": "registry/shared/table/column-layout-actions.ts",
          "type": "registry:lib",
          "target": "@components/data-table/column-layout-actions.ts"
        },
        {
          "path": "registry/shared/table/column-color-palette.ts",
          "type": "registry:lib",
          "target": "@components/data-table/column-color-palette.ts"
        },
        {
          "path": "registry/shared/table/use-column-color-picker.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-column-color-picker.ts"
        },
        {
          "path": "registry/shared/table/use-focus-toolbar-on-unmount.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-focus-toolbar-on-unmount.ts"
        },
        {
          "path": "registry/shared/table/data-table-row-clicks.ts",
          "type": "registry:lib",
          "target": "@components/data-table/data-table-row-clicks.ts"
        },
        {
          "path": "registry/shared/table/use-virtual-rows.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-virtual-rows.ts"
        },
        {
          "path": "registry/shared/table/use-scroll-to-top-on-change.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-scroll-to-top-on-change.ts"
        },
        {
          "path": "registry/shared/table/use-data-table-search.ts",
          "type": "registry:hook",
          "target": "@components/data-table/use-data-table-search.ts"
        },
        {
          "path": "registry/shared/table/page-range.ts",
          "type": "registry:lib",
          "target": "@components/data-table/page-range.ts"
        },
        {
          "path": "registry/shared/table/measure-column-width.ts",
          "type": "registry:lib",
          "target": "@components/data-table/measure-column-width.ts"
        }
      ]
    }
  ]
}